<?php
/**
 * 任务脚本处理
 * @author duanlang<duanlang@iyene.com>
 * @reviewer author<xxxx@iyene.com>
 */
class TASK_Controller extends CI_Controller
{
    public $start_time = '';

    //构造函数
    function __construct(){
        parent::__construct();
        //载入缓存类库(优先使用memcached， memcached有故障的时候则用文件缓存)
        $this->load->driver('cache', array('adapter' => config_item('cache_type'), 'backup' => 'file'));
        //初始化请求
        $this->initialize();
    }
    /**
     * 初始化
     * @author duanlang<duanlang@iyene.com>
     * @return [type] [description]
     */
    public function initialize()
    {
        header("Content-type: text/html; charset=utf-8");
        $this->start_time = $this->getMillisecond();//记录开始执行时间
        header("HTTP/1.1 200 OK"); //可以发送200状态码，以这些请求是成功的，要不然可能浏览器会重试，特别是有代理的情况下
        ini_set('default_socket_timeout', -1);//设置socket流永久
        set_time_limit(0);//设置页面永久不超时
    }

    /**
     * 生成毫秒时间
     * @author duanlang<duanlang@iyene.com>
     * @return [type] [description]
     */
    public function getMillisecond(){
        list($s1, $s2) = explode(' ', microtime());
        return (float)sprintf('%.0f', (floatval($s1) + floatval($s2)) * 1000);
    }

    /**
     * 爱聚记录文件日志(便于后期跟踪查询)
     *
     * @param  [type] $filename [日志名]
     * @param  [type] $logData  [日志数据]
     * @param  [type] $type     [日志类型]
     * @return [type]           [description]
     */
    public function log($filename, $logData, $type = 'default')
    {
        $logPath = '/data/logs/crm/'.$type;
        //检测日志文件是否存在
        if(!is_dir($logPath))
        {
            mkdir($logPath, 0777, true);
        }

        $logPath = $logPath.'/'.$filename;
        $logData = var_export($logData, true);
        $logData = "[".date("Y/m/d H:i:s",time())."]: ".$logData;

        //写入日志
        file_put_contents($logPath, $logData, FILE_APPEND);
    }
}